import { OpenAI } from "openai";
import dotenv from "dotenv";

dotenv.config();

//启动一个进程
//在进程中加载环境变量 env环境对象
//什么是进程 ? 进程是一个程序的执行过程,分配资源的最小单位
//console.log(process.env.OPENAI_API_KEY)
const client =new OpenAI({
    //process 是node里面的进程对象
    apiKey: process.env.OPENAI_API_KEY, 
    baseURL: process.env.OPENAI_BASE_URL 
})
//es6 的默认参数值 model = "gpt-3.5-turbo"
//通用LLM完成接口函数的调用
const getComleteion = async (prompt , model = "gpt-3.5-turbo") => {
   const messages = [{
        role: "user",
        content: prompt,
   }];

   const response = await client.chat.completions.create({
        model:model,
        messages:messages,
        temperature:0,
   })

   return response.choices[0].message.content;

};

const main= async () =>{
   
    const prod_review = `
    我女儿生日时买了这个熊猫毛绒玩具，她很喜欢，到处都带着。
    它柔软、超级可爱，脸看起来很友好。
    不过，相对于我付的价格来说，它有点小。
    我想，同样的价格，也许还有其他更大的选择。
    它比预期早到了一天，所以我有机会自己玩了一会儿，然后才把它送给她。` ;
    
    const prompt1 = `
    您的任务是生成来自电子商务网站产品评论的简单摘要。
    总结下面用三个反引号分隔的评论最多30个字。
    评论：""'${prod_review}`;

    const prompt2 = ` 你的任务是生成来自电子商务网站的产品评论简短摘要,
    以便向运输部门提供反馈。总结以下用三个反引号分隔的评论最多30个字。
    并重点关注任何提及产品运输和交付的方面。评论：'''$${prod_review}'''  `;

    const response = await getComleteion(prompt2,'gpt-4o');
    console.log(response);
}

main()